home *** CD-ROM | disk | FTP | other *** search
-
- CHANGES TO ISAM SINCE 1.00
- --------------------------
-
- 1.01
- ----
-
- The Link Library was replaced with a Resident Library, and the support
- and example programs were modified to use the new library.
- Calls to OpenLibrary()/CloseLibrary() need to be added to your code.
- A file of #pragma statements and an .fd (function description) file have
- been added. The C prototype files have had an #include statement added to
- pull in the #pragma file. For those that cannot use #pragma statements or
- or whose compiler cannot handle #pragma's for functions of more than four (4)
- parameters, a link library of stub functions is also provided.
-
- Previously, in order to make sure that files/records were unlocked/closed/
- etc. an exit trap was in place that called DisConnectISAM upon program
- exit. This has been removed. DisConnectISAM will now be called auto-
- matically when CloseLibrary is called. DisConnectISAM is no longer
- user-callable, and has been removed from the AutoDocs. The error message
- referring to the exit trap should be considered obsolete, and will not be
- returned by any function.
-
- The "Maximum Different Simultaneously Open ISAM Files" figure, which was
- defaulted to 50, but which was user-configurable, has been removed.
- Our compiler handles open files diffently now (linked list vs. static
- array). (There still IS a maximum, but it's in the billions, so don't
- worry about it.). Because of this, the instructions for locating/changing
- the "MAXFILES=" Workbench ToolType have been removed, as has the ToolType
- itself.
- From the CLI/Shell, the <maxfiles> parameter has been removed, leaving
- <quiet> the only parameter.
-
- After being recompiled with our language upgrade, the server seems to be
- about 10K smaller. Also, utilizing the Resident Library, the main support
- programs are about 1/2 of their former size, since they consist mostly of
- ISAM calls.
-
- A bug has been fixed at the point where the server determined whether a file
- was open already by comparing the name of the data file being opened with the
- names of currently open files. The comparison is now case-insensitive.
- This would only have been a problem if two programs used two different specs
- files to refer to the same ISAM file (which is unlikely, not to mention unwise,
- anyway) and the data file names were not identically cased.
-
-
- 1.02
- ----
-
- The ISAM resident library was modified to work in the case that the user
- opened the library twice from the same program.
-
- Example: the user has a link-library function, that handles ISAM error
- messages, that calls ISAMWhy. This makes opening the library necessary
- for the function. Any main program that uses ISAM would, of course,
- also open the library. This caused a problem with the automatic closing
- of files, which occurs when CloseLibrary is called. In this case, when
- the error-handling function exited, the files were closed, even when the
- main program had not called its closedown function.
-
- The count of OpenLibrary/CloseLibrary calls is now kept for each user, and
- the auto-close feature is only activated at the last CloseLibrary.
-
-
- 1.03
- ----
-
- A new function, GetFirstLastISAMKeyValues, has been added. Given an ISAM
- Handle and a Key Number, this function will return the first and last
- key values for that key. Whether first is greater or less than last is,
- of course, dependent on whether the key is an ascending or descending key.
- The record numbers of the records having the first and last key values will
- also be returned.
- This function has been added to the end of the library, so that no re-
- compilation is necessary for programs that used a previous library version.
-
- ISAM is now usable from ARexx. A new function library, rexxisam.library,
- has been added (the main library, isam.library, is still necessary, as
- rexxisam.library opens it). All ISAM functions may be called from ARexx,
- as well as two ARexx-only functions that help in making/using records.
- For complete details, see the file RexxISAM.doc.
-
- If the ReportISAMStatus Command is run from the CLI/Shell, it now types the
- report file (RAM:ISAMStatus) to the CLI/Shell after the file is created
- (thus it is no longer necessary to "Type RAM:ISAMStatus" after calling
- ReportISAMStatus in order to actually see the report). This is done only
- if Report... is run from the CLI/shell. The ReportISAMStatus function is
- unchanged - only the command has changed.
-
- ReIndexISAMFile's Counter Window has been enlarged slightly, and a message
- indicating completion is now displayed at the end of the ReIndexing. The
- highest count remains visible for 5 seconds, as before.
-
- The CreateISAMFile function now complains if a key length is greater than the
- maximum possible size.
-
- Two files useful for assembler programmers have been kindly provided by
- Koen Peetermans. One (ISAM_Lib.i) gives the _LVO offsets for isam.library;
- the other (ISAMErrDefs.i) provides the error return EQU's. He has used them
- with a non-SAS/Lattice assembler, but feels that little/no modification
- would be necessary with that or other assemblers.
- These files have been modified slightly to reflect the current version.
-
-
- [A user has reported a situation that we have been unable to duplicate: when
- storing the SECOND (2nd) record of a file, the error IERROR_NOT_DELETED_RECORD
- was returned. Whether this occurred or not was apparently related to the
- record size. Using the ISAM files that the user provided, we don't get any
- error no matter what the record size (in fact, we have never received that
- particular error message). The user had this problem several times, but
- reports that in each case, after ReIndexing, all was well. Since we don't get
- the error, perhaps it is a machine- or OS-specific problem. I believe the
- user has an A4000; ISAM has been developed on an A1000/A3000-030/16.
- In any event, if you have this problem, just ReIndex the file.]
-